/*************************************************************************
                           Cercle  -  description
                             -------------------
    début                : 21 févr. 2012
    copyright            : (C) 2012 par francois
*************************************************************************/

//---------- Interface de la classe <Cercle> (fichier Cercle.h) ------
#if ! defined ( CERCLE_H_ )
#define CERCLE_H_

//--------------------------------------------------- Interfaces utilisées
#include "Point2D.h"

namespace livgeo {

//------------------------------------------------------------- Constantes

//------------------------------------------------------------------ Types

//------------------------------------------------------------------------
// Rôle de la classe <Cercle>
//
//
//------------------------------------------------------------------------

class Cercle
{
//----------------------------------------------------------------- PUBLIC

public:
//----------------------------------------------------- Méthodes publiques

	const Point2D& getCenter() const { return center; }

	unsigned int getRadius() const { return radius; }

    void createBoundingBox(Point2D& botLeft, Point2D& topRight);
    // Crée le rectangle englobant ce triangle. Il est créée en affectant les
    // paramètres de sortie botLeft (coin inférieur gauche) et topRight(coin
    // suppérieur droit)

    bool contains(const Point2D& p);
    // Renvoie vrai si le triangle contient le point <p>, sinon renvoie faux

//------------------------------------------------- Surcharge d'opérateurs

//-------------------------------------------- Constructeurs - destructeur

    Cercle ( const Point2D& c, unsigned int radius);

    virtual ~Cercle ( );
    // Destructeur

//------------------------------------------------------------------ PRIVE

protected:
//----------------------------------------------------- Méthodes protégées

//----------------------------------------------------- Attributs protégés
    Point2D center;
    unsigned int radius;
};

//--------------------------- Autres définitions dépendantes de <Cercle>

}; // ------ fin de livgeo

#endif // CERCLE_H_
